package com.tools.common.utils;

import com.tools.common.exception.ToolException;

import java.util.Objects;

/**
 * 增加判空类 简化IF判断
 * @author Admin
 */
public class Asserts {

    /**
     * 条件成立则抛出异常
     * @param exception 条件
     * @param msg 异常信息
     */
    public static void isTrue(boolean exception, String msg) {
        if (exception) {
            throw new ToolException(msg);
        }
    }

    /**
     * 条件成立则抛出异常
     * @param exception 触发异常的条件
     * @param code 异常编码
     * @param msg 异常信息
     */
    public static void isTrue(boolean exception, Integer code, String msg) {
        if (exception) {
            throw new ToolException(msg,code);
        }
    }

    /**
     * 如果为空字符串则抛出异常
     * @param str 为空的子串
     * @param msg 异常消息
     */
    public static void isEmpty(String str, String msg) {
        if (StringUtils.isEmpty(str)) {
            throw new ToolException(msg);
        }
    }

    /**
     * 如果为null 则抛出异常
     * @param obj 为null的对象
     * @param msg 异常信息
     */
    public static void isNull(Object obj, String msg) {
        if (Objects.isNull(obj)) {
            throw new ToolException(msg);
        }
    }

    /**
     * 不为空 跑出异常
     * @param obj 待判断的对象
     * @param msg 异常信息
     */
    public static void isNotNull(Object obj, String msg) {
        if (!Objects.isNull(obj)) {
            throw new ToolException(msg);
        }
    }
}
